package com.example.securitytest.dataobject;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

/**
 * 用户
 */
@Setter
@Getter
@NoArgsConstructor
public class MyUser implements Serializable {

	/**
	 * 主键id
	 */
	private int id;

	/**
	 * 用户名
	 */
	private String username;

	/**
	 * 密码
	 */
	private String password;

	/**
	 * 昵称
	 */
	private String nickname;

	/**
	 * 头像
	 */
	private String avatar;

	/**
	 * 用户的角色
	 */
	private Set<Role> roles;

	/**
	 * 获取该用户的全部权限
	 *
	 * @return 用户的权限
	 */
	public Set<Permission> getPermissions() {
		Set<Permission> permissions = new HashSet<>();
		for (Role role : roles) {
			for (Permission permission : role.getPermissions()) {
				permissions.add(permission);
			}
		}
		return permissions;
	}

}